package com.ruoyi.mp.mapper;

import com.ruoyi.mp.domain.MpUserTemplateinfo;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateIndustry;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 模版管理Mapper接口
 * 
 * @author ruoyi
 * @date 2024-09-18
 */
public interface MpUserTemplateinfoMapper 
{
    /**
     * 查询模版管理
     * 
     * @param id 模版管理主键
     * @return 模版管理
     */
    public MpUserTemplateinfo selectMpUserTemplateinfoById(Long id);

    /**
     * 查询模版管理列表
     * 
     * @param mpUserTemplateinfo 模版管理
     * @return 模版管理集合
     */
    public List<MpUserTemplateinfo> selectMpUserTemplateinfoList(MpUserTemplateinfo mpUserTemplateinfo);

    /**
     * 新增模版管理
     * 
     * @param mpUserTemplateinfo 模版管理
     * @return 结果
     */
    public int insertMpUserTemplateinfo(MpUserTemplateinfo mpUserTemplateinfo);

    /**
     * 修改模版管理
     * 
     * @param mpUserTemplateinfo 模版管理
     * @return 结果
     */
    public int updateMpUserTemplateinfo(MpUserTemplateinfo mpUserTemplateinfo);

    /**
     * 删除模版管理
     * 
     * @param id 模版管理主键
     * @return 结果
     */
    public int deleteMpUserTemplateinfoById(Long id);

    /**
     * 批量删除模版管理
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteMpUserTemplateinfoByIds(Long[] ids);


    /**
     * 设置行业信息
     *
     * @param appId 公众号id
     * @return
     */
    @Insert("insert into mp_account_industry (app_id,primary_industry,second_industry) values (#{appId},#{wxMpTemplateIndustry.primaryIndustry},#{wxMpTemplateIndustry.secondIndustry})")
    public int setIndustry(@Param("appId") String appId, @Param("wxMpTemplateIndustry") WxMpTemplateIndustry wxMpTemplateIndustry);

    /**
     * 删除行业信息
     *
     * @param appId 公众号id
     * @return
     */
    @Delete("delete * from mp_account_industry where app_id = #{appId}")
    public void deleteIndustry(String appId);

    /**
     * 删除所有模版
     *
     * @param appId 公众号id
     * @return
     */
    @Delete("delete *  from mp_user_templateinfo where app_id = #{appId}")
    public void  deleteMpUserTemplateinfoByAppId(String appId);

    /**
     * 批量插入模版
     *
     * @param mpUserTemplateInfoList 模版集合
     * @return
     */
    @Insert("<script>" +
            "INSERT INTO mp_user_templateinfo (title,content,app_id,scene_desc,template_id,primary_industry,deputy_industry,create_time,update_time,create_by) " +
            "VALUES " +
            "<foreach collection=\"mpUserTemplateInfoList\" item=\"item\" index=\"index\" separator=\",\">" +
            "(#{item.title}, #{item.content},#{item.appId},#{item.sceneDesc},#{item.templateId},#{item.primaryIndustry},#{item.deputyIndustry},#{item.createTime},#{item.updateTime},#{item.createBy})" +
            "</foreach>" +
            "</script>")
    public  int getAllPrivateTemplate(@Param("mpUserTemplateInfoList") List<MpUserTemplateinfo> mpUserTemplateInfoList);
    /**
     * 删除模版
     *
     * @param templateId 模版id
     * @return
     */
    @Delete("delete from mp_user_templateinfo where template_id = #{templateId}")
    public void   delPrivateTemplate(String templateId);
}
